/**
 * 删除链表中等于给定值 val 的所有节点。
 *      输入: 1->2->6->3->4->5->6, val = 6
 *      输出: 1->2->3->4->5   
 */



 /**
 * @param {ListNode} head
 * @param {number} val
 * @return {ListNode}
 */
const Node = require('../../单链表/node')
var removeElements = function(head, val) {
    // head为首元素而不是头节点，头节点单独检验
    while(head !== null && head.data === val ) {head = head.next}
    var p = head
    var prev = head
    while(p !== null) {
        if(p.data !== val) {
            prev = p
            p = p.next
        } else {
            p = p.next
            prev.next = p
        }
    }
    return head
};